In many applications it is necessary to drive DC motors with great precision. Electric motors are inductive loads and thus there is a certain delay between a variation of the current circulating in the motor winding(s) and the corresponding voltage variation at the terminals of the motor. The delay is a function of the electrical time constant of the motor. This delay or phase lag complicates the control and may lead to relevant errors in precisely positioning devices moved by the motor.
An important application requiring a precise driving of a motor is that in which a voice coil motor (VCM) is used for shifting read/write heads over the surface of hard disk. There are innumerable applications of voice coil motors, and for sake of simplicity hereinafter this common type of motor will be referred to, although the considerations that will be found to hold, with the appropriate changes, even for other types of DC motors.
Commonly, these motors are controlled in current-mode through a feedback loop that includes a sensing resistor connected in series to the winding of the motor and a control circuit input with the voltage present on the sensing resistor that generates a driving voltage of an output power stage connected to the winding of the motor such to nullify the difference between the current effectively flowing in the motor and the programmed current. Drawbacks connected to this type of driving include that the sensing resistor must be highly precise to minimize driving errors of the motor, and it is a relatively expensive externally connected discrete component. Moreover, at least a pin of the integrated control system device must be dedicated for inputting the voltage drop on the external sensing resistor.
With even larger scale of integration the cost of completely packaged integrated circuits increases with the number of pins. Moreover, realizing feedback loops of current-mode control implies non negligible costs, especially in devices of large scale of integration. An open-loop voltage-mode control is an alternative to the more costly current-mode control because of reduced pin count because a dedicated pin for the sensing resistor is no longer necessary. The delay due to the electrical time constant of the motor may be compensated by using the method and the related driving circuit, disclosed in the patent U.S. Pat. No. 6,617,817, to STMicroelectronics Ltd., comprising a compensation filter for correcting a command signal based upon the nominal value of the admittance of the motor. With the driving circuit disclosed in the cited patent, and depicted in FIG. 1, a DC motor may be controlled in voltage-mode with performances that are comparable with those of a current-mode control.
An undesired effect in driving DC motors includes that when the rotation speed of the rotor increases, the back electromotive force induced in the primary winding, that contrasts the rotation of the rotor, also increases. In current-mode controlled motors, the voltage generated by the back electromotive force is compensated by the feedback loop. By contrast, in voltage-mode controlled motors compensation of the varying back electromotive force must be done with a feed-forward action for preventing a worsening of performances.
VBEMF being the back electromotive force induced voltage in the primary winding, Kt the speed constant, ω the angular speed of the rotor, V the driving voltage of the motor and VMOTOR the effective excitation voltage of the armature of the motor, the following equations hold:VBEMF(t)=−Kt·ω(t)  (1)VMOTOR(t)=V(t)−Kt·ω(t)  (2)
The published patent application U.S. 2003/0021057 discloses a compensation method and circuit, shown in FIG. 2, of the back electromotive force VBEMF of a voltage-mode controlled motor. To compensate the back electromotive force VBEMF, it is necessary to know at each instant the speed of the motor. To this purpose, a signal CALCULATED_VELOCITY, is generated by sensing the speed of the motor at pre-established instants and interpolating the sampled values in the intervals between successive samplings. According to the method disclosed in the above mentioned patent application, the voltage VBEMF is compensated by determining the parameters of a compensation filter, VBEMF_COMPENSATOR, in function of the value of the design speed constant Kt of the motor.
Unfortunately, the speed constant Kt varies during the operation of the motor, primarily because of the heating up of the windings, and it may differ significantly from its design value, thus the method disclosed in the cited patent application does not ensure a sufficiently accurate compensation of the back electromotive force for applications in which a precise driving of the motor is required.